package com.yonyou.sto.modules.ims.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yonyou.sto.modules.ims.model.ImsInvoiceItem;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author ：Targaryen Aegon
 * @version ：1.0-SNAPSHOT
 * @date ：Created in 2020/9/25 10:24
 * @description ：开票用dto
 * @modifiedBy ：
 */
@Data
@ApiModel(value="单据列表对象", description="")
public class InvoiceDto {

    @ApiModelProperty(value = "主键")
    private String id;

    @ApiModelProperty(value = "单据编码")
    private String billSn;

    @ApiModelProperty(value = "发票内容")
    private String billContent;

    @ApiModelProperty(value = "悦闻系统推送字段 组织标识（WY、CM、SY、XX、ZC），（物业事业部、传媒事业部、信息事业部、商业事业部、公司本部）")
    private String companyId;

    @ApiModelProperty(value = "悦闻系统推送字段（组织名称）")
    private String companyName;

    @ApiModelProperty(value = "开票组织名称")
    private String partyName;

    @ApiModelProperty(value = "收款单位编号（本方）")
    private String sellerSn;

    @ApiModelProperty(value = "收款单位名称（本方） ")
    private String sellerName;

    @ApiModelProperty(value = "购买方名称")
    private String buyerName;

    @ApiModelProperty(value = "购买方纳税人识别号")
    private String buyerTaxSn;

    @ApiModelProperty(value = "合同编号")
    private String contractSn;

    @ApiModelProperty(value = "合同名称")
    private String contractName;

    @ApiModelProperty(value = "收款内容和备注")
    private String note;

    @ApiModelProperty(value = "价税合计")
    private BigDecimal payAmount;

    @ApiModelProperty(value = "发票流水号")
    private String billSerial;

    @ApiModelProperty(value = "发票类型：3->增值税普通发票；4->增值税专用发票")
    private Integer billType;

    @ApiModelProperty(value = "提交时间")
    private String createTime;

    @ApiModelProperty(value = "单据状态")
    private Integer status;

    @ApiModelProperty(value = "NC主表主键")
    private String pkNch;

    @ApiModelProperty(value = "NC时间")
    private String ts;

    @ApiModelProperty(value = "单据类型")
    private String djlx;

    @ApiModelProperty(value = "申请人名称")
    private String applyname;

    @ApiModelProperty(value = "申请人编码")
    private String applycdoe;

    @ApiModelProperty(value = "申请人日期")
    private String applydate;

    @ApiModelProperty(value = "无税金额")
    private BigDecimal wsje;

    @ApiModelProperty(value = "开票申请金额")
    private BigDecimal applyje;

    @ApiModelProperty(value = "发票号码")
    private String billNo;

    @ApiModelProperty(value = "发票代码")
    private String billCode;

    @ApiModelProperty(value = "税额")
    private BigDecimal taxAmount;

    @ApiModelProperty(value = "红字申请单号")
    private String redapplycode;

    @ApiModelProperty(value = "客户主键")
    private String pkNccust;

    @ApiModelProperty(value = "客户编码")
    private String custcode;

    @ApiModelProperty(value = "蓝字发票号")
    private String blueBillNo;

    @ApiModelProperty(value = "蓝字发票代码")
    private String blueBillCode;

    @ApiModelProperty(value = "红字发票号")
    private String redBillNo;

    @ApiModelProperty(value = "红字发票代码")
    private String redBillCode;

    @ApiModelProperty(value = "是否赠品")
    @TableField("ISGIFT")
    private String isgift;

    @ApiModelProperty(value = "NC申请人")
    private String ncName;
    
    @ApiModelProperty(value = "开票明细数据")
    private List<ImsInvoiceItem> invoiceItems;

}
